Contact centers, such as Automatic Call Distribution or ACD systems, are employed by many enterprises to service customer contacts. A typical contact center includes a switch and/or server to receive and route incoming packet-switched and/or circuit-switched contacts and one or more resources, such as human agents and automated resources (e.g., Interactive Voice Response (IVR) units), to service the incoming contacts. Contact centers distribute contacts, whether inbound or outbound, for servicing to any suitable resource according to predefined criteria. In many existing systems, the criteria for servicing the contact from the moment that the contact center becomes aware of the contact until the contact is connected to an agent are customer-specifiable (i.e., programmable by the operator of the contact center), via a capability called contact vectoring. Normally in present-day ACDs when the ACD system's controller detects that an agent has become available to handle a contact, the controller identifies all predefined contact-handling skills of the agent (usually in some order of priority) and delivers to the agent the highest-priority oldest contact that matches the agent's highest-priority skill. Generally, the only condition that results in a contact not being delivered to an available agent is that there are no contacts waiting to be handled.
Most present-day contact-distribution algorithms focus on being “fair” to callers and to agents. This fairness is reflected by the standard first-in, first-out contact to most-idle-agent assignment algorithm. Skills-based routing improves upon this basic algorithm in that it allows each agent to be slotted into a number of agent groups based on the agent's skill types and levels.
The primary objective of call-distribution algorithms is to ultimately maximize contact center performance and profitability. That may involve minimizing cost, maximizing contact throughput, and/or maximizing revenue, among others. For example, when a new contact arrives, the contact should be handled by an agent who either has the ability to produce the most revenue or can handle the contact in the shortest amount of time. Also, when an agent becomes available to handle a new contact, the agent should handle either the contact that has the possibility of generating the most revenue or the contact which the agent is most efficient in handling.
An important consideration in minimizing contact center operating costs and maximizing contact center revenue is servicing a customer's needs in as few contacts as possible. Whether the contact center is sales or services repeated contacts by a customer to accomplish one transaction causes the contact center's costs of serving that customer to rise and service wait times to increase, which lowers contact center profitability and increases customer dissatisfaction, thereby lowering revenue. The challenge to contact center administrators is tracking whether a current contact is related to a prior contact and therefore is not “one-and-done”. As a result of this challenge current contact centers do not measure the percentage of contacts that are “one-and-done”
Existing contact centers do allow for the tracking of “trouble” tickets (e.g., WebQ/QQ™ business application). These trouble ticket applications can retrieve open and closed trouble tickets and display them to agents. It may even be possible, through integration, to push the most recent trouble tickets to an agent upon delivering a contact. Existing contact centers, however, do not allow for the identification of a current contact that is associated with a prior contact by the same customer that was not “one-and-done” let alone making contact-handling decisions for the current contact based upon this identification to decrease the likelihood that the customer's needs will not be serviced in the current contact.